import java.util.Stack;

import static java.util.Optional.empty;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: nn
 * Date: 2025-04-20
 * Time: 20:47
 */


//用栈实现队列
public class MyQueue {
    private Stack<Integer> s1;
    private Stack<Integer> s2;
    public MyQueue(){
        s1 = new Stack<>();
        s2 = new Stack<>();
    }
    public void push(int x){ //“入队”：将数据放到第一个栈中
        s1.push(x);
    }

    public int pop(){//将栈顶元素出栈并返回
        if(empty()){//如果连个栈都为空
            return -1;
        }
        if(s2.empty()){
            //弹出s1中所有的元素 放到s2中
            while (!s1.isEmpty()){
                s2.push(s1.pop());//循环将s1中弹出的元素放到s2中
            }
        }
        return s2.pop();
    }
    public int peek(){//将栈顶元素出栈并返回
        if(empty()){//如果连个栈都为空
            return -1;
        }
        if(s2.empty()){
            //弹出s1中所有的元素 放到s2中
            while (!s1.isEmpty()){
                s2.push(s1.pop());//循环将s1中弹出的元素放到s2中
            }
        }
        return s2.peek();
    }

    public boolean empty(){
        return s1.isEmpty()&& s2.isEmpty();
    }

}
